#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>

typedef struct ListNode
{
	int val;
	struct ListNode* next;
}ListNode;

void Initiate(ListNode** head);
void PushNode(ListNode** head, int x);
struct ListNode* MiddleNode(struct ListNode* head);
struct ListNode* ReverseList(struct ListNode* head);
